package com.xuanzuo.birthday.helper;

import java.util.Hashtable;

import com.xuanzuo.birthday.constant.APIQQ;
import com.xuanzuo.birthday.constant.APISina;
import com.xuanzuo.birthday.constant.APISohu;
import com.xuanzuo.birthday.constant.APIWangyi;
import com.xuanzuo.birthday.model.Media;

public class MediaDataHelper {

	public static final String MediaType_sina = "sina";
	public static final String MediaType_qq = "qq";
	public static final String MediaType_wangyi = "wangyi";
	public static final String MediaType_sohu = "sohu";
	private static MediaDataHelper helper;
	
	Hashtable<String, Media> medias = new Hashtable<String, Media>();
	private MediaDataHelper(){
		Media sina = new Media();
		sina.setMediaType(MediaType_sina);
		sina.setKey("2319708643");
		sina.setSecret("f2da5a19323abaa7731f261027b005c5");
		medias.put(MediaType_qq, sina);

		Media qq = new Media();
		qq.setMediaType(MediaType_sina);
		qq.setKey("2319708643");
		qq.setSecret("f2da5a19323abaa7731f261027b005c5");
		medias.put(MediaType_qq, qq);

		Media wangyi = new Media();
		wangyi.setMediaType(MediaType_sina);
		wangyi.setKey("2319708643");
		wangyi.setSecret("f2da5a19323abaa7731f261027b005c5");
		medias.put(MediaType_qq, wangyi);

		Media sohu = new Media();
		sohu.setMediaType(MediaType_sina);
		sohu.setKey("2319708643");
		sohu.setSecret("f2da5a19323abaa7731f261027b005c5");
		medias.put(MediaType_qq, sohu);
	}
	
	public static MediaDataHelper getHelper(){
		if(null == helper){
			helper = new MediaDataHelper();
		}
		return helper;
		
	}
	
	public Media getSina(){
		return medias.get(MediaType_sina);
	}
	
	public Media getQQ(){
		return medias.get(MediaType_qq);
	}
	
	public Media getWangyi(){
		return medias.get(MediaType_sina);
	}
	
	public Media getSohu(){
		return medias.get(MediaType_sohu);
	}
	
	public Media getMedia(String mediaType){
		return medias.get(mediaType);
	}
	
	public String getIndexUrl(String mediaType){
		if(MediaType_qq.equals(mediaType)){
			return APIQQ.URL_HOME;
		}else if(MediaType_sina.equals(mediaType)){
			return APISina.URL_HOME;
		}else if(MediaType_wangyi.equals(mediaType)){
			return APIWangyi.URL_HOME;
		}else if(MediaType_sohu.equals(mediaType)){
			return APISohu.URL_HOME;
		}else{
			return APISina.URL_HOME;
		}
	}
	
	public String getRequestTokenUrl(String mediaType){
		if(MediaType_qq.equals(mediaType)){
			return APIQQ.URL_OAUTH_REQEST_TOKEN;
		}else if(MediaType_sina.equals(mediaType)){
			return APISina.URL_OAUTH_REQEST_TOKEN;
		}else if(MediaType_wangyi.equals(mediaType)){
			return APIWangyi.URL_OAUTH_REQEST_TOKEN;
		}else if(MediaType_sohu.equals(mediaType)){
			return APISohu.URL_OAUTH_REQEST_TOKEN;
		}else{
			return APISina.URL_OAUTH_REQEST_TOKEN;
		}
	}
	
	public String getAccessTokenUrl(String mediaType){
		if(MediaType_qq.equals(mediaType)){
			return APIQQ.URL_OAUTH_ACCESS_TOKEN;
		}else if(MediaType_sina.equals(mediaType)){
			return APISina.URL_OAUTH_ACCESS_TOKEN;
		}else if(MediaType_wangyi.equals(mediaType)){
			return APIWangyi.URL_OAUTH_ACCESS_TOKEN;
		}else if(MediaType_sohu.equals(mediaType)){
			return APISohu.URL_OAUTH_ACCESS_TOKEN;
		}else{
			return APISina.URL_OAUTH_ACCESS_TOKEN;
		}
	}
	
	public String getAuthorizeUrl(String mediaType){
		if(MediaType_qq.equals(mediaType)){
			return APIQQ.URL_OAUTH_AUTHORIZE;
		}else if(MediaType_sina.equals(mediaType)){
			return APISina.URL_OAUTH_AUTHORIZE;
		}else if(MediaType_wangyi.equals(mediaType)){
			return APIWangyi.URL_OAUTH_AUTHORIZE;
		}else if(MediaType_sohu.equals(mediaType)){
			return APISohu.URL_OAUTH_AUTHORIZE;
		}else{
			return APISina.URL_OAUTH_AUTHORIZE;
		}
	}
}
